<!--author:shinion date:2019-01-05-->
<%-- jsp注释，不显示在前端--%>
<%@ include file="/common/taglibs.jsp"%>
<!--分页查询共用的页面-->
<%@ include file="/common/common.jsp"%>
<%@ include file="/common/dateUtil.jsp"%>
<%@ page language="java" pageEncoding="UTF-8"%>

<head>
	<script type="text/javascript" src="<%=jsPath%>/jquery/jquery.timers.js"></script>
	<!--定时器-->

	<script>

		/*
定义全局变量
*/
var activeSafeName = "主动安全报警";//全局定义主动安全报警为本数据
var alarmSourcesData = null;
var params = {};//定义查询条件
var readyFlg = false;//标明页面加载完成标记

/*
初始化控件
*/


//初始化datagrid
$(function(){
    $("#adasAttachmentData").datagrid({
        // width:"100%",
		height:"100%",
		toolbar:"#adasAttachmentToobar",//工具条
		pagination:true,
		pageList:[15,30,50,100],
		pageSize:15,
		singleSelect:true,
		rownumbers:true,
		striped:true,
		fitColumns: true,
		checkOnSelect: false,
		selectOnCheck: false
    });
});

//表单重置方法
function formReset(){
	document.getElementById("adasQueryForm").reset();
}

//查询条件中日期和车组的校验
function validateDate() {
	var startTime = $("#startTime").val();
	var endTime = $("#endTime").val();
	startTime = new Date(Date.parse(startTime.replace(/-/g, "/")));
	endTime = new Date(Date.parse(endTime.replace(/-/g, "/")));
	if (isNaN(startTime.getTime()) || isNaN(endTime.getTime())) {
		$.messager.alert('提示', '非法的日期格式');
	}
	var today = new Date();

	var date1 = new Date(startTime.getFullYear(), startTime.getMonth(), startTime.getDate());
	var date2 = new Date(endTime.getFullYear(), endTime.getMonth(), endTime.getDate());
	if (startTime > today) {
		$.messager.alert('提示', '开始日期不能大于当前日期');
		return false;
	}
		if (startTime >= endTime) {
		$.messager.alert('提示', '开始时间不能大于等于结束时间');
		return false;
	}

	var iMonth = endTime.getMonth() - startTime.getMonth();
	if (iMonth > 1 || (iMonth < 0 && iMonth != -11)) {
		$.messager.alert('提示', '一次只能查询不超过两个月的历史数据');
		return false;
	}

	//车组校验
	//获取选择树种选中的类型
	// var treeSelected = $("#depId").combotree("tree").tree("getSelected");
	
    // if(treeSelected == null){
	// 	$.messager.alert('提示', '请选择车组信息');
	// 	return false;
    // }else{
	// 	// console.log(treeSelected);
	// 	if(treeSelected.text =="请选择车组"){
	// 		$.messager.alert('提示', '请选择正确车组信息');
	// 	return false;
	// 	}
	// }

	return true;
}



/*

页面加载完成后
进行数据的初始化

*/

$(document).ready(function(){

    ///初始化时间
	var now = Utility.today();
	$("#startTime").val(now + " 00:00:00");
	$("#endTime").val(now + " 23:59:00");

	//创建下拉部门树
	Utility.createDepTree("depId");

	//初始化报警类型相关信息
    initAlarmInfo();
    
    //查询按钮事件定义
	$("#btnQuery").click(function(){
		getAlarmData();
		//重新定义页面为第一页
		params.pageNumber = 1;
		//显示第一页
		setFirstPage();
        //查询数据

        getAjaxData();
        

        // console.log("开始查询");
        // console.log(params);
    });


    //选择页面事件定义
	$("#adasAttachmentData").datagrid("getPager").pagination({
		onSelectPage:function(pageNumber,pageSize){
			if (readyFlg) {
				//设置新的页面信息
				initPageParams();
				// console.log(params);
				//查询数据
				getAjaxData();
			}	
		}
	});



    //加载完成
	readyFlg = true;
});



/*
查询数据，并根据返回情况进行数据填充
*/
function getAjaxData(){

    var jsonData = JSON.stringify(params);
    console.log(jsonData);
	Utility.showMsgLoading('正在查询附件信息...');
    $.ajax({
        type: "post",
        url: "<%=ApplicationPath%>/activeSafeAlarm/getAdasAttachmentPageData.action",//请求地址
        dataType: "json",
        data: jsonData,
        contentType: "application/json;charset=utf-8",
        success: function (data) {
            addData(data.rows);//处理数据
            $("#adasAttachmentData").datagrid('loadData', data);//绑定数据
			Utility.hideLoading();//停止加载

            console.log("接收数据->");
            console.log(data);
        }
    });

}

/*
*处理数据，加上报警来源和报警类型
*/
function addData(data){
	try {
		if (alarmSourcesData != null) {
			//开始处理数据
			for (var i = 0; i < data.length; i++) {
				var temp = getAlarmTypeData(data[i].alarmSource,data[i].alarmType);
				data[i].alarmSourceName = temp.alarmSourceName;
                data[i].alarmTypeName = temp.alarmTypeName;	
			}
		}
	} catch (error) {
		console.error("处理数据错误" + error);
	}
}

//根据文件类型获取文件类型描述
function getFileTypeName(value, rowData, rowIndex){
    switch(value){
        case 0 :
        return "图片";
        case 1 :
        return "音频";
        case 2 :
        return "视频";
        case 3 :
        return "文本文件";
        case 4 :
        return "其他";
        default:
        return "其他";
    }
}

//文件大小转换
function getFileLength(value, rowData, rowIndex){
    var returnLength = value;
    try {
        var fileLengthTemp = parseInt(value);
        if(!isNaN(fileLengthTemp)){
            returnLength = fileLengthTemp/1000;
            returnLength = returnLength.toFixed(1);
            returnLength = returnLength + "K";
        }
    } catch (error) {
        console.error("转换文件大小出错:"+error);
    }  
    return returnLength;
}

//获取文件查看和下载
var attachmentPath = "<%=ApplicationPath%>/adasAttachment/";
function getDownloadActionColumn(alue, rowData, rowIndex)
{
    var resourceId = rowData.id;
    var filePath = rowData.filePath;
    if (!filePath)
        filePath = "";
    filePath = filePath.replace("\\", "/");
    var status = rowData.status;
    var fileName = rowData.fileName;
    var html = status;
    if (status == "new")
        html = "等待上传";
    else if (status == "uploading")
        html = "正在上传";
    else if (status == "failed") {
        html = "上传失败";
    }
    else if (status == "uploaded" || status == "上传完成") {
		filePath = attachmentPath + filePath;
		console.log(filePath);
		var filePath2 = "/gps-web/adasAttachment/aaa.rar";
		// console.log(filePath);
        // var attachmentUrl = "<%=ApplicationPath%>/adasAlarm/viewAttachment.action?adasAttachmentId=" + resourceId;
        // var downloadPath = "<%=ApplicationPath%>/adasAlarm/download.action?adasAttachmentId=" + resourceId;
        html = "<a href=\"javascript:InfoWindow.viewAdasAlarmAttachment('" + filePath + "');\">" + " 查看</a>";
        html += "&nbsp;&nbsp;&nbsp;&nbsp;";
        //html += "<a href=" + filePath+ "'\"> 另存为</a>";
		// html += "<a href=\"javascript:window.open('" + filePath2 + "');\">下载 </a>";
		html+='<a href="'+filePath+'" download="'+filePath+'">下载</a>';
    }
    return html;
}




//设置页面为显示第一页
function setFirstPage() {
	var opts = $("#adasAttachmentData").datagrid("options");
	var pager = $("#adasAttachmentData").datagrid("getPager");
	opts.pageNumber = 1;
	opts.pageSize=params.pageSize;
	pager.pagination("refresh", {
		pageNumber: 1,
		pageSize: opts.pageSize
	});
}


/*
从服务器请求数据
1.校验查询条件是否合法
2.格式化查询条件
3.请求数据
4.如果返回数据合法，则填充数据
*/
//请求数据
function getAlarmData(){
	//校验数据
	if(validateDate()){
		initParams();//格式化查询条件	
	}
}



//格式化查询条件
function initParams(){
	params = {};//清空数据
	//获取分页信息
    initPageParams();
	//获取基本查询信息
	params.plateNo = $("#plateNo").val();
	
	params.startTime = $("#startTime").val();//开始时间
	params.endTime = $("#endTime").val();//结束时间

	//获取选择树种选中的类型
    var treeSelected = $("#depId").combotree("tree").tree("getSelected");
	
    if(treeSelected!= null){
		var depIdTemp = treeSelected.id;
		// console.log("depIdTemp="+depIdTemp);
		try {
			depIdTemp = parseInt(depIdTemp);
		} catch (error) {
			console.error("获取查询条件中转换错误"+error);
		}
		if(depIdTemp != undefined){
			params.depId=depIdTemp;//获取depId
		}else{
			params.depId=0;
		}
		
    }

	//获取报警类型和报警来源
	getAlarmParams();


	// console.log("params:");
	// console.log(params);
}

//获取页面信息并配置到参数对象中
function initPageParams(){
	params.pageNumber = $("#adasAttachmentData").datagrid("getPager").data("pagination").options.pageNumber;
	params.pageSize = $("#adasAttachmentData").datagrid("getPager").data("pagination").options.pageSize;
}



/*
根据下拉框选项，获取选择信息
1.获取报警来源和报警类型的选择文本，
2.如果报警来源为请选择，那么不设置参数，即全查询
	如果报警来源为“主动安全报警”，那么参数名字设置为alarmName，值为“主动安全报警”,报警类型不为不选择的话，类型参数为：alarmType和alarmTypeName
	如果报警来源为其他，那么设置参数alarmSource，为其值，如果报警类型不为请选择，那么设置参数alarmType，值为其他
*/
function getAlarmParams(){
	try {
		var alarmTypeText = $("#alarmType").combobox("getText");
		if(alarmTypeText){
			//获取是否选择了合法的类型
			var dataTemp = getAlarmTypeValue(activeSafeName, alarmTypeText);
			if (dataTemp != null) {
				//合法，选择单个类型查看
				params.alarmSource = dataTemp.alarmSource;
				params.alarmType = dataTemp.alarmType;
			}else{
				//空，则全查询,获取所有类型
				params.alarmSourcelist = getAlarmSourceValues(activeSafeName);
			}
		}//end alarmTypeText
	} catch (error) {
		console.error(error);
	}

}




//获取主动安全报警的所有数据
function getAlarmSourceValues(alarmSourceName){
	var alarmSources = new Array();
	if(alarmSourcesData != null){
		for(var i=0 ; i< alarmSourcesData.length ; i++){
			if(alarmSourcesData[i].alarmSourceName == alarmSourceName){
				//如果数组中不存在该来源信息，则加入
				if(alarmSources.indexOf(alarmSourcesData[i].alarmSource) <= -1)
				{
					alarmSources.push(alarmSourcesData[i].alarmSource);
				}
			}
			
		}
	}
	return alarmSources;
}

//获取一条报警来源数据
function getAlarmSourceValue(alarmSourceName){
	if(alarmSourcesData != null){
		for(var i=0 ; i< alarmSourcesData.length ; i++){
			if(alarmSourcesData[i].alarmSourceName == alarmSourceName)
				return alarmSourcesData[i];
		}
	}else{
		return null;
	}
}

//获取一条报警类型数据，根据来源和类型文字,使用
function getAlarmTypeValue(alarmSourceName,alarmTypeName){
	if(alarmSourcesData != null){
		for(var i=0 ; i< alarmSourcesData.length ; i++){
			if(alarmSourcesData[i].alarmSourceName == alarmSourceName && alarmSourcesData[i].alarmTypeName == alarmTypeName)
				return alarmSourcesData[i];
		}
	}else{
		return null;
	}
}



//根据值，获取数据,用于从服务器查询数据后，补充类型和来源描述用，由addData方法调用
function getAlarmTypeData(alarmSource,alarmType){
	if(alarmSourcesData != null){
		for(var i=0 ; i< alarmSourcesData.length ; i++){
			if(alarmSourcesData[i].alarmSource == alarmSource && alarmSourcesData[i].alarmType == alarmType)
				return alarmSourcesData[i];
		}
	}else{
		return null;
	}
}



//初始化报警类型和报警来源相关信息
/*
1.获取报警数据
2.设置保存报警数据
3.填充报警类型

*/
function initAlarmInfo(){
	try {
		//获取报警数据
		$.ajax({
			type: "post",//请求方式
			url: "<%=ApplicationPath%>/activeSafeAlarm/getAlarmSources.action",
			data: null,
			contentType: "application/json;charset=utf-8",
			success: function (data) {
				//获取数值，赋值
				alarmSourcesData = data;
				//填充报警类型数据
				fillAlarmType();
				// console.log(data);
				// console.log(data.length);
				// console.log(data[3].alarmSourceName);
			}
		});
	} catch (error) {
		console.error("初始化报警相关下拉框错误"+error);
	}
	
}

/*
1.格式化数据，根据传值过来的文字，选择报警来源文字相同的报警类型文字，存入数据数组
2.初始化报警类型下拉框，并填充数据
*/
function fillAlarmType(){

	//首先，因为只有主动安全报警，那么就不需要其他报警信息，
	/*
	1.格式化数据，把非主动安全报警的数据去掉

	2.填充报警类型文字
	*/
	if(alarmSourcesData!= null){
		//筛选数据
		var dataTemp = new Array();
		for(var i=0 ; i<alarmSourcesData.length ; i++){
			if(alarmSourcesData[i].alarmSourceName == activeSafeName){
				dataTemp.push(alarmSourcesData[i]);
			}
		}
		alarmSourcesData = dataTemp;

		//填充数据
		var alarmTypeArrayTemp = new Array();//数据数组
		//填充第一条
		var objTemp = {text:"请选择",value:0};
		alarmTypeArrayTemp.push(objTemp);
		//开始填充数据
		for(var i=0 ; i<alarmSourcesData.length ; i++){
			var atTemp = alarmSourcesData[i].alarmSourceName;
			//数据数组中放入报警类型数据
			alarmTypeArrayTemp.push({text:alarmSourcesData[i].alarmTypeName,value:(i+1)});
		}

		//初始化下拉框控件并绑定数据
		if(alarmTypeArrayTemp != null){
			$("#alarmType").combobox({
				textField:"text",
				valueField:"value",
				data:alarmTypeArrayTemp,
				select:alarmTypeArrayTemp[0].value
				//选择事件不添加，暂不需要
			});
		}
	}
}






</script>
</head>
<body>
	<!--工具条-->
	<div id="adasAttachmentToobar">
		<form id="adasQueryForm" action="" >
			<table width="100%" class="TableBlock sh_css_basFontSize">
				<tr>
					<td align="right">车牌号码&nbsp;&nbsp;</td>
					<td style="width:90px;">
						<input type="text" id="plateNo" name="plateNo" style="width:80px;">
					</td>
					<td align="right">车组名称&nbsp;&nbsp;</td>
					<td>
						<select id="depId" name="depId" style="width:160px;"></select>
					</td>

					<td align="right">报警类型&nbsp;&nbsp;</td>
					<td> <select id="alarmType" name="alarmType" style="width:130px;"></select></td>

					<td align="right">开始时间
						:</td>
					<td>
						<input type="text" name="startTime" id="startTime" class="datetimepicker" style="width:140px;"/>
					</td>
					<td align="right">结束时间:</td>
					<td align="left">
						<input type="text" name="endTime" id="endTime" class="datetimepicker" style="width:140px;"/>
					</td>
					<td colspan="4" align="left">
						<div style="width:100%;" class="base_hori_flexStartDiv_css">
							<!-- <a id="btnQuery" href="#" class="easyui-linkbutton" data-options="iconCls:'icon-search'">查询</a> -->
							<div id="btnQuery" class="sh_css_btn">
								<div class="ui-icon icon-search" style="width:16px;height:16px;"></div>
								<span>查询</span>
							</div>
							&nbsp;
							<a id="btnReset" href="#" class="easyui-linkbutton" data-options="iconCls:'icon-clear'" onclick="formReset();">重置</a>&nbsp;
							<!--<a id="btnExport" href="#" class="easyui-linkbutton" data-options="iconCls:'icon-excel'" onclick="Utility.excelExport('<%=ApplicationPath%>/export.action');">导出</a>-->
							<!--调用utility.js-->
						</div>
					</td>

				</tr>
			</table>
		</form>
	</div>
	<!--报警数据表格dagagrid-->
	<table id="adasAttachmentData">
		<thead>
			<tr>
				<th data-options="field:'plateNo'" width="80">车牌号</th>
				<th data-options="field:'depName'" width="80">车组</th>
				<th data-options="field:'alarmTypeName'" width="110">报警类型</th>
				<th data-options="field:'fileType',formatter:getFileTypeName" width="80">附件类型</th>
				<th data-options="field:'fileLength',formatter:getFileLength" width="80">附件大小</th>
				<th data-options="field:'status',formatter:getDownloadActionColumn" width="100">上传状态</th>
				<th data-options="field:'createDate'" width="145">创建时间</th>
				<th data-options="field:'updateDate'" width="145">上传时间</th>
				<th data-options="field:'level'" width="80">报警级别</th>
				<th data-options="field:'location'" width="350">报警地点</th>
			</tr>
		</thead>
	</table>
</body>
